/**
 * this指向问题的处理
 * 
 * 箭头函数不能用 call apply bind方法
 */
function Person(name, age) {
  this.name = name;
  this.age = '123';
}
function Son(name, age) {
  // Person.call(this, name, age);
  this.sex = '1'
  this.name = '123'
  Person.apply(this, [...arguments]);
  /**
   * 以下代码的含义
   * 1. 将Person的this指向Son
   * 2. 执行Person的构造函数
   */
  // Person.bind(Son, name, age)()
}
var son = new Son('son', 18);
console.log(son);
console.log('apply', Person.apply(this, [{name: 'apply', age: 18}]))